package com.bbva.itradecomex.dao.iface;

import java.math.BigDecimal;
import java.util.List;

import com.bbva.itradecomex.domain.FinanciamientoDetalle;
import com.bbva.itradecomex.domain.MediosDePagoDetalle;
import com.bbva.itradecomex.domain.ModalLiquidacionCobroDet;
import com.bbva.itradecomex.domain.ModalLiquidacionGastoDet;
import com.bbva.itradecomex.domain.ModalProdAfectacion;
import com.bbva.itradecomex.domain.ModalProdCabCDICDE;
import com.bbva.itradecomex.domain.ModalProdCabCOICOE;
import com.bbva.itradecomex.domain.ModalProdCabTransferencia;
import com.bbva.itradecomex.domain.ModalProdNegocPagoCuota;
import com.bbva.itradecomex.domain.ModalProductoContacto;
import com.bbva.itradecomex.domain.ModalProductoFinanc;
import com.bbva.itradecomex.domain.ModalProductoLiquidacion;
import com.bbva.itradecomex.domain.ModalProductoMercaderia;
import com.bbva.itradecomex.form.FlujoExportacionForm;
import com.bbva.itradecomex.form.FlujoImportacionForm;

public interface ModalProductoDAO {

	public ModalProductoFinanc getModalProductoFinanc(BigDecimal idOper) throws Exception;
	public List<ModalProdNegocPagoCuota> getListModalProdNegocPagoCuota(BigDecimal idOper) throws Exception;
	public List<ModalProductoContacto> getListModalProductoContacto(BigDecimal idOper) throws Exception;
	public List<ModalProductoLiquidacion> getListModalProductoLiquidacion(BigDecimal idOper) throws Exception;
	public List<ModalProductoMercaderia> getListModalProductoMercaderia(BigDecimal idOper) throws Exception;
	
	public ModalProdCabTransferencia getModalProdCabTransferencia(BigDecimal idOper) throws Exception;
	public ModalProdCabCDICDE getModalProdCabCDICDE(BigDecimal idOper) throws Exception;
	public ModalProdCabCOICOE getgetModalProdCabCOICOE(BigDecimal idOper)throws Exception;
	public List<ModalProdAfectacion> getListModalProdAfectacion(BigDecimal idOper) throws Exception;
	
	public List<ModalLiquidacionGastoDet> getConsLiquidacionGasto(String idOperacion, 
			String idLiquidacion) throws Exception;
	public List<ModalLiquidacionCobroDet> getConsLiquidacionCobro(String idOperacion, 
			String idLiquidacion) throws Exception;
	
	public List<MediosDePagoDetalle> getListModalContactosClienteMDP(String idCliente, BigDecimal idContacto, 
			String codProdMT) throws Exception;
	public List<FinanciamientoDetalle> getListModalContactosClienteFIA(String idCliente, BigDecimal idContacto, 
			String codProdMT) throws Exception;
	
	/** Flujo de importacion y exportacion**/
	public List<MediosDePagoDetalle> getModalFlujoImpMDPTablaSuperior(
			FlujoImportacionForm formulario) throws Exception;
	public List<MediosDePagoDetalle> getModalFlujoImpMDPTablaInferiorOPH(
				FlujoImportacionForm formulario) throws Exception;
	public List<MediosDePagoDetalle> getModalFlujoImpMDPTablaInferiorIMP(
				FlujoImportacionForm formulario) throws Exception;		
	public List<MediosDePagoDetalle> getModalFlujoExpMDPTablaSuperior(
				FlujoExportacionForm formulario) throws Exception;
	public List<MediosDePagoDetalle> getModalFlujoExpMDPTablaInferiorOPH(
				FlujoExportacionForm formulario) throws Exception;
	public List<MediosDePagoDetalle> getModalFlujoExpMDPTablaInferiorIMP(
				FlujoExportacionForm formulario) throws Exception;
	public List<MediosDePagoDetalle> getModalFlujoExpMDPTablaInferiorAFE(
				FlujoExportacionForm formulario) throws Exception;
	
	public List<FinanciamientoDetalle> getModalFlujoImpFIATablaSuperior(
			FlujoImportacionForm formulario) throws Exception;
	public List<FinanciamientoDetalle> getModalFlujoImpFIATablaInferiorOPH(
			FlujoImportacionForm formulario) throws Exception;
	public List<FinanciamientoDetalle> getModalFlujoImpFIATablaInferiorIMP(
			FlujoImportacionForm formulario) throws Exception;	
	public List<FinanciamientoDetalle> getModalFlujoImpFIATablaInferiorPRO(
			FlujoImportacionForm formulario) throws Exception;	
	public List<FinanciamientoDetalle> getModalFlujoExpFIATablaSuperior(
			FlujoExportacionForm formulario) throws Exception;
	public List<FinanciamientoDetalle> getModalFlujoExpFIATablaInferiorOPH(
			FlujoExportacionForm formulario) throws Exception;
	public List<FinanciamientoDetalle> getModalFlujoExpFIATablaInferiorIMP(
			FlujoExportacionForm formulario) throws Exception;		
	public List<FinanciamientoDetalle> getModalFlujoExpFIATablaInferiorPRO(
			FlujoExportacionForm formulario) throws Exception;
	/** Fin Flujo de importacion y exportacion**/	
}
